﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Aurora.WebApp.Models;
using Aurora.WebApp.Helpers;
using Aurora.WebApp.Controllers;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;

namespace Aurora.WebApp.ViewModel.Employee
{
    public class AddEditTrabajadorViewModel
    {   
        public int? TRA_ID { get; set; }
        [Display(Name = "Código")]
        [Required(ErrorMessageResourceName = "CampoRequerido", ErrorMessageResourceType = typeof(i18n.ValidationStrings))]
        public string TRA_CODIGO { get; set; }
        [Display(Name = "Contraseña")]
        [Required(ErrorMessageResourceName = "CampoRequerido", ErrorMessageResourceType = typeof(i18n.ValidationStrings))]
        public string TRA_CONTRASENA { get; set; }
        [Display(Name = "Nombres y Apellidos")]
        [Required(ErrorMessageResourceName = "CampoRequerido", ErrorMessageResourceType = typeof(i18n.ValidationStrings))]
        public string TRA_NOMBRE { get; set; }
        [Display(Name = "DNI")]
        [Required(ErrorMessageResourceName = "CampoRequerido", ErrorMessageResourceType = typeof(i18n.ValidationStrings))]
        public string TRA_DNI { get; set; }
        [Display(Name = "Rol")]
        [Required(ErrorMessageResourceName = "CampoRequerido", ErrorMessageResourceType = typeof(i18n.ValidationStrings))]
        public int? ROL_ID { get; set; }

        public List<SelectListItem> ListRoles { get; set; }

        public AddEditTrabajadorViewModel()
        {
            ListRoles = new List<SelectListItem>();
        }

        public void CargarDatos(CargarDatosContext datacontext, int? _TRA_ID)
        {
            var lista = datacontext.context.Rol;
            if (lista != null && lista.Count() > 0)
            {
                foreach (var item in lista)
                    ListRoles.Add(new SelectListItem { Value = item.ROL_ID.ToString(), Text = item.ROL_NOMBRE });
            }

            if (_TRA_ID.HasValue)
            {
                int TrabajadorId = Convert.ToInt32(_TRA_ID);
                Trabajador trabajador = datacontext.context.Trabajador.FirstOrDefault(x => x.TRA_ID == TrabajadorId);
                this.TRA_ID = trabajador.TRA_ID;
                this.TRA_CODIGO = trabajador.TRA_CODIGO;
                this.TRA_CONTRASENA = trabajador.TRA_CONTRASENA;
                this.TRA_NOMBRE = trabajador.TRA_NOMBRE;
                this.TRA_DNI = trabajador.TRA_DNI;
                this.ROL_ID = trabajador.ROL_ID;
            }
        }
    }
}